As used herein, a network communication application is software that is used to communicate (via one or more computers) with network equipment in communication networks and extract data from the network equipment for purposes of managing the communication networks. Communication networks may consist of hundreds of different types of network equipment and include different types of networks, such as Internet Protocol (IP) networks, asynchronous transfer networks, optical networks, wireless networks, a combination of any such networks, and the like. Enabling a network communication application (via one or more computers) to communicate with the various different types of networks and network equipment is daunting given the many incompatibilities and differences associated with languages and protocols used by such networks and equipment.
Complicating matters further is the challenge associated with dealing with changes made to the many different types of network equipment residing in the different network environments. To account for these ever-constant changes, it is often necessary to change, update, patch or otherwise modify software code associated with the network communication application in order for the network communication application to communicate with newly added or updated network equipment.
Modifying a network communication application to account for changes made to network equipment in communication networks is not a trivial matter for a software developer. Typically a network communication application is a very sophisticated program containing millions of lines of code. Besides the volume of software code, the software developer has to account for the many dependencies hidden in the software code, which may be affected by modifying the code. A dependency is a logical constraint between two or more portions of code or two or more portions of operations performed by the code. For example, where the order of a first operation in a sequential program produces a result that is an operand of a second operand, a dependency is formed such that the second operand cannot be performed until the first operation has been completed, since the first operand value would not otherwise be available.
Accounting for dependencies when modifying an application often can take more time than it may have taken to create and develop the software application in the first place. These costly implementation delays increase the expense associated with modifying and updating network communication applications, and such delays further inconvenience customers that depend on the applications.